import { notFound } from "next/navigation";
import { eq } from "drizzle-orm";
import { {{joinCaseVariants.pluralPascalCase}}UpdateForm } from "@/components/admin/{{leftCaseVariants.pluralKebabCase}}/{{joinCaseVariants.pluralKebabCase}}-update-form";
import { db } from "@/lib/db";
import { get{{leftCaseVariants.singularPascalCase}}WithRelations } from "@/repositories/{{leftCaseVariants.singularKebabCase}}-repository";
import { {{joinCaseVariants.pluralCamelCase}} } from "@/schema/{{joinCaseVariants.pluralKebabCase}}";

type Params = Promise<{ id: string }>;

export default async function Page(props: { params: Params }) {
  const params = await props.params;
  const { id } = params;
  const {{leftCaseVariants.singularCamelCase}} = await get{{leftCaseVariants.singularPascalCase}}WithRelations(id);

  if (!{{leftCaseVariants.singularCamelCase}}) {
    notFound();
  }

  const {{rightCaseVariants.singularCamelCase}}List = await db.query.{{rightCaseVariants.pluralCamelCase}}.findMany();

  const {{joinCaseVariants.singularCamelCase}}List = await db.query.{{joinCaseVariants.pluralCamelCase}}.findMany({
    where: eq({{joinCaseVariants.pluralCamelCase}}.{{leftCaseVariants.singularCamelCase}}Id, id),
  });

  return (
    <div>
      <h1 className="font-bold text-xl mb-6">Edit {{rightCaseVariants.pluralCapitalCase}}</h1>
      <p><strong>{{leftCaseVariants.singularCapitalCase}}:</strong> { {{leftCaseVariants.singularCamelCase}}.id }</p>
      <{{joinCaseVariants.pluralPascalCase}}UpdateForm
        id={ {{leftCaseVariants.singularCamelCase}}.id }
        {{rightCaseVariants.singularCamelCase}}List={ {{rightCaseVariants.singularCamelCase}}List }
        {{joinCaseVariants.singularCamelCase}}List={ {{joinCaseVariants.singularCamelCase}}List }
      />
    </div>
  );
}
